<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:task="http://www.springframework.org/schema/task"
    xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
		http://www.springframework.org/schema/tx
		http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
		http://www.springframework.org/schema/aop
		http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
        http://www.springframework.org/schema/task 
        http://www.springframework.org/schema/task/spring-task-3.2.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.2.xsd">

	<!-- mode: ${mode} -->
	<!--<aop:aspectj-autoproxy /> -->
	<context:component-scan base-package="com.google.code.ssm" />

	<bean id="cacheBase" class="com.google.code.ssm.aop.CacheBase" />
	<bean id="settings" class="com.google.code.ssm.Settings" />

	<bean id="readThroughSingleCache" class="com.google.code.ssm.aop.ReadThroughSingleCacheAdvice">
		<property name="cacheBase" ref="cacheBase" />
	</bean>
	<bean id="readThroughMultiCache" class="com.google.code.ssm.aop.ReadThroughMultiCacheAdvice">
		<property name="cacheBase" ref="cacheBase" />
	</bean>
	<bean id="readThroughAssignCache" class="com.google.code.ssm.aop.ReadThroughAssignCacheAdvice">
		<property name="cacheBase" ref="cacheBase" />
	</bean>
	<bean id="updateSingleCache" class="com.google.code.ssm.aop.UpdateSingleCacheAdvice">
		<property name="cacheBase" ref="cacheBase" />
	</bean>
	<bean id="updateMultiCache" class="com.google.code.ssm.aop.UpdateMultiCacheAdvice">
		<property name="cacheBase" ref="cacheBase" />
	</bean>
	<bean id="updateAssignCache" class="com.google.code.ssm.aop.UpdateAssignCacheAdvice">
		<property name="cacheBase" ref="cacheBase" />
	</bean>
	<bean id="invalidateSingleCache" class="com.google.code.ssm.aop.InvalidateSingleCacheAdvice">
		<property name="cacheBase" ref="cacheBase" />
	</bean>
	<bean id="invalidateMultiCache" class="com.google.code.ssm.aop.InvalidateMultiCacheAdvice">
		<property name="cacheBase" ref="cacheBase" />
	</bean>
	<bean id="invalidateAssignCache" class="com.google.code.ssm.aop.InvalidateAssignCacheAdvice">
		<property name="cacheBase" ref="cacheBase" />
	</bean>

	<bean id="incrementCounterInCache" class="com.google.code.ssm.aop.counter.IncrementCounterInCacheAdvice">
		<property name="cacheBase" ref="cacheBase" />
	</bean>
	<bean id="decrementCounterInCache" class="com.google.code.ssm.aop.counter.DecrementCounterInCacheAdvice">
		<property name="cacheBase" ref="cacheBase" />
	</bean>
	<bean id="readCounterFromCache" class="com.google.code.ssm.aop.counter.ReadCounterFromCacheAdvice">
		<property name="cacheBase" ref="cacheBase" />
	</bean>
	<bean id="updateCounterInCache" class="com.google.code.ssm.aop.counter.UpdateCounterInCacheAdvice">
		<property name="cacheBase" ref="cacheBase" />
	</bean>

</beans>